"""
降维目的旨在减少冗余特征主要由两步构成
1.特征选择
方法一：过滤式 包含方差选择法和相关系数法
方差选择法：低方差特征过滤
相关系数法：高相关系数（此处采用的是皮尔逊相关系数）
方法二：嵌入式
包括决策树，正则化，深度学习
"""
import sklearn.decomposition
from sklearn import feature_selection, preprocessing
import pandas as pd
from scipy.stats import pearsonr
if __name__ == "__main__":
    maxminscaler = preprocessing.MinMaxScaler()
    standerscaler = preprocessing.StandardScaler()
    data = pd.read_csv("test.txt")
    variance = feature_selection.VarianceThreshold()
    data3 = variance.fit_transform(data.iloc[:, :3])  # 前面是行， 后面是列
    print(data3)
    num = pearsonr(data["height"], data["length"])
    print(num)
    # PCA主成分分析 用于将多个相关系数大的特征合为一个
    pca = sklearn.decomposition.PCA(2)  # 当此处为整数时意为包留几个特征，小数时为保留多少信息
    data4 = pca.fit_transform(data3)
    print(data4)